<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<style>
  @keyframes anim {
    0% { background-color: red; }
    50% { left: 50px; background-color: green; }
    100% { background-color: red; }
  }

  #target {
    width: 100px;
    height: 100px;
    position: relative;
  }
</style>
<div id="target"></div>
<script>
  test(function() {
    var rules = document.styleSheets[0].rules;
    for (var i = 0; i < rules.length; i++) {
      if (rules[i].type == CSSRule.KEYFRAMES_RULE) {
        rules[i].appendRule('50% { left: 0px; }');

        assert_equals(rules[i].cssRules.length, 4);
        assert_equals(rules[i].cssRules[0].cssText, '0% { background-color: red; }');
        assert_equals(rules[i].cssRules[1].cssText, '50% { left: 50px; background-color: green; }');
        assert_equals(rules[i].cssRules[2].cssText, '100% { background-color: red; }');
        assert_equals(rules[i].cssRules[3].cssText, '50% { left: 0px; }');
      }
    }

    target.style.animation = 'anim 2s -1s paused';
    assert_equals(getComputedStyle(target).backgroundColor, 'rgb(0, 128, 0)', 'background color');
    assert_equals(getComputedStyle(target).left, '0px', 'left offset');
  }, "Check that duplicate keyframe offsets are correctly merged");
</script>
